class DRTCParams {
  String userId;
  String token;
  String appID;
  String meetingId;
  String gslbServer;
  String userName;

  DRTCParams({
    required this.userId,
    required this.token,
    required this.appID,
    required this.meetingId,
    required this.gslbServer,
    required this.userName,
  });

  Map toJson() {
    return {
      'meeting_user_id': userId,
      'meeting_token': token,
      'meeting_app_id': appID,
      'meeting_channel_id': meetingId,
      'meeting_gslb': gslbServer,
      'meeting_user_name': userName,
    };
  }
}

enum DingRtcUserOfflineReason {
  DingRtcUserOfflineQuit(0),
  DingRtcUserOfflineDropped(1),
  DingRtcUserOfflineBecomeAudience(2);

  final int offlineReason;
  const DingRtcUserOfflineReason(this.offlineReason);
}

enum DingRtcAudioTrack {
  DingRtcAudioTrackNo(0),
  DingRtcAudioTrackMic(1);
  final int audioTrack;
  const DingRtcAudioTrack(this.audioTrack);
}

enum DingRtcVideoTrack {
  DingRtcVideoTrackNo(0),
  DingRtcVideoTrackCamera(1),
  DingRtcVideoTrackScreen(2),
  DingRtcVideoTrackBoth(3);

  final int videoTrack;

  const DingRtcVideoTrack(this.videoTrack);
}
enum DingRtcLogLevel {
  DingRtcLogLevelInfo(3),
  DingRtcLogLevelWarn(4),
  DingRtcLogLevelError(5),
  DingRtcLogLevelNone(6);

  final int value;

  const DingRtcLogLevel(this.value);
}